草庐IT

c++ - enable_shared_from_this 和继承

全部标签

javascript - 只是好奇如何继承 String 对象。 (原型(prototype))

我知道这是不受欢迎的,我只是在探索这个想法,就我的生活而言,似乎无法按照我想要的方式完成这项工作。这个例子应该解释所有:String.prototype.MyNS=function(){}String.prototype.MyNS.fooify=function(){returnthis+'foo!';}vartheString='Kung';alert(theString.MyNS.fooify());当然,这只是将函数定义附加到“foo”……添加this()是行不通的。我知道我在那里失去了背景,但无法弄清楚如何让原件开火并给我我想要的东西。 最佳答案

javascript - node.js 和浏览器之间关键字 "this"的不同行为

我已经尝试在ie、firefox和node.js中使用以下代码varx=10;varo={x:15};functionf(){console.log(this.x);}f();f.call(o);在浏览器中的结果是10、15,但是在node.js中的结果是undefined,15。请向我解释一下“this”关键字在浏览器和node.js中的不同行为是什么?我已经阅读了很多页面,但没有任何明显的答案。提前致谢。 最佳答案 在Nodejs中加载的Javascript文件会自动包装在匿名函数中。所以在Node中你真正运行的是:(funct

javascript - 可以在 RequireJS 模块中使用 'this' 关键字吗?

我定义了一个RequireJS模块(见下文)。它是网站上每个页面都需要的功能的集合。返回对象中的一个函数initTwitter()需要调用同一对象中的另一个函数shortenURL()。我收到一个控制台错误,内容为“TypeError:this.shortenURLisnotafunction.”所有这些函数最初都在一个常规的Javascript单例对象中,代码运行良好。我是RequireJS的新手,所以我不确定this关键字在RequireJS中的工作方式是否不同,或者我只是做错了什么。编辑:我也尝试删除“this”,但我收到“ReferenceError:shortenURLisn

javascript - this.initialize(arguments) 与 this.initialize.apply(this, arguments) : what's the difference?

如果您查看Backbone.js的源代码,您会看到此模式的多种用途:this.initialize.apply(this,arguments);例如,这里:varRouter=Backbone.Router=function(options){options||(options={});if(options.routes)this.routes=options.routes;this._bindRoutes();this.initialize.apply(this,arguments);};为什么不直接写this.initialize(arguments)呢?

javascript - this.route() 和 this.resource() 有什么区别?

我知道路由用于将URL映射到模板,但显然您可以使用this.route或this.resource定义路由App.Router.map(function(){this.route("about",{path:"/about"});this.route("favorites",{path:"/favs"});});App.Router.map(function(){this.resource('posts',{path:'/posts'},function(){this.route('new');});});如果您想为路线定义子路线,您是否只使用this.resource还是有其他我没有

javascript - JS 实现类似 "extends"的功能(非常简单的继承)

假设我在JS中有一个带有原型(prototype)函数的类...functionFoo(){this.stuff=7;this.otherStuff=5;}Foo.prototype.doSomething=function(){};Foo.prototype.doSomethingElse=function(){};现在说我想通过子类化来“扩展”这个类。在Java中,这看起来像...publicclassBarextendsFoo{}现在我知道在JS中真的没有类的概念,一切都可以改变,这一切都归结为一堆废话字典,但尽管如此,我应该能够复制一个类的原型(prototype)并将其附加到

javascript - EaselJS:有人可以解释一下演示中使用的继承模式吗?

我正在使用EaselJS创建游戏,我想知道是否有人可以解释演示文件中使用的继承模式是如何工作的。具体来说,我正在查看以下文件:https://github.com/CreateJS/EaselJS/blob/master/examples/assets/Ship.js在第7行,Ship的原型(prototype)设置为createjs.container()...varp=Ship.prototype=newcreatejs.Container();然后在第28行,存储了对原始构造函数的引用:p.Container_initialize=p.initialize;//uniquetoa

javascript - AngularJS - $emit/$on 或范围继承哪个更好?

假设我有以下HTML结构:现在,假设NavCtrl需要操纵恰好存在于RootCtrl范围内的模型-在这种情况下$emit/$on更适合?在什么情况下通过范围继承直接操作模型会更好? 最佳答案 如果您使用原型(prototype)继承,则需要小心,因为在父Controller和子Controller中使用相同的变量名很容易出错。这可以通过确保$scope变量总是在某处“有一个点”来避免,但是需要纪律来确保你总是这样做。您还可以使用$scope.$parent.$parent结构访问RootCtrl中设置的NavCtrl中的变量,但这很

javascript - 如何继承静态方法?

我有课functionMan(){...}Man.drinkBeer=function(){...}我需要从Man继承SuperMan。而且我仍然希望我的超人能够喝点啤酒。我该怎么做? 最佳答案 Object.setPrototypeOf(SuperMan,Man);这会将派生函数的内部__proto__属性设置为基函数。因此,派生函数将继承基函数的所有属性。请注意,这会影响函数本身,而不是它们的原型(prototype)。是的,这很困惑。没有现有的浏览器支持setPrototypeOf();相反,您可以使用非标准(但有效)的替代方

javascript - 为什么在进行 Javascript 继承时要创建一个临时构造函数?

为什么goog.inherits来自GoogleClosureLibrary看起来像这样:goog.inherits=function(childCtor,parentCtor){functiontempCtor(){};tempCtor.prototype=parentCtor.prototype;childCtor.superClass_=parentCtor.prototype;childCtor.prototype=newtempCtor();childCtor.prototype.constructor=childCtor;};而不是goog.inherits=functio